package Demo08.Demo0821;
//  这是关于  第五节方法的课后作业

import java.util.Scanner;

// 这是关于方法的课后习题
public class Homework {
    public static void main1(String[] args) {
        //有一组数据，只有一个数字是出现一次，其他是两次，请找出这个数字。
        int[] a = {1,2,3,4,5,1,3,4,5};
        fac(a);
    } // //有一组数据，只有一个数字是出现一次，其他是两次，请找出这个数字。
    public static void main2(String[] args) {
        //创建方法求两个数的最大值max2，随后再写一个求3个数的最大值的函数max3
        //要求：在max3这个函数中，调用max2函数，来实现3个数的最大值计算
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();
        System.out.println("前两个数较大的是" + getTwoMax(a,b));
        System.out.println("三个数最大的是" + getThreeMax(a,b,c));
    }   //创建方法求两个数的最大值max2，随后再写一个求3个数的最大值的函数max3。
    // 要求：在max3这个函数中，调用max2函数，来实现3个数的最大值计算
    public static void main3(String[] args) {
        //题目：调整数组顺序使得奇数位于偶数之前。调整之后，不关心大小顺序
        int a[] = {1, 2, 3, 4, 5, 6};

        for (int left = 1, right = a.length;left < right; left++, right--) {
            if ((left % 2 == 0 && right % 2 != 0)) {
                int tmp = a[left - 1];
                a[left - 1] = a[right - 1];
                a[right - 1] = tmp;

                for (int i = 0; i < a.length; i++) {
                    System.out.print( a[i] + " " );
                }
            }
        }//调整数组顺序使得奇数位于偶数之前。调整之后，不关心大小顺序
    } //题目：调整数组顺序使得奇数位于偶数之前。调整之后，不关心大小顺序
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你想要求的第n位的值：");
        int n= sc.nextInt();
        System.out.println("第" + n +"位的值是" + fab(n));
    }//运用迭代求斐波那契数列
    public static int fab(int n){
        int res = 0;
        int key1 = 1;
        int key2 = 1;
        if(n == 1 || n == 2){
            return 1;
        }else{
            for (int i = 3; i <= n; i++) {
                res = key1 + key2;
                key1 = key2;
                key2 = res;
            }
        }
        return res;
    }
    public static int getTwoMax(int a,int b){
        if(a > b){
            return a;
        }else {
            return  b;
        }
    }
    public static int getThreeMax(int a,int b,int c){
        if(getTwoMax(a,b) > c){
            return getTwoMax(a,b);//调用比较两数大小的方法
        }else{
            return c;
        }
    }
    public static void fac(int[] a){
        for (int i = 0; i < a.length; i++) {
            int count = 0; //计数器
            for (int j = 0; j < a.length; j++) {
                if(a[i] == a[j]){
                    count++;
                }
            }
            if(count == 1){
                System.out.println("只出现一次的数字是" + a[i]);
            }
        }
    }
}
